/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sys.screen;

import java.awt.BorderLayout;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.SwingConstants;
import javax.swing.SwingWorker;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.swing.JRViewer;
import sys.bean.ClienteBean;
import sys.bean.EntregaFuturaBean;
import sys.bean.PedidoBean;
import sys.bean.UsuarioBean;
import sys.dao.EntregaFuturaDao;
import sys.utils.Mensagens;
import sys.utils.Utils;
import static sys.utils.Utils.escClose;

/**
 *
 * @author Administrador
 */
public class UIPedidosEntregaFutura extends javax.swing.JDialog {

    SimpleDateFormat formDataSpac = new SimpleDateFormat("yyyyMMdd");
    SimpleDateFormat formDataSpacTabela = new SimpleDateFormat("yyMMdd");
    SimpleDateFormat formDataMysql = new SimpleDateFormat("yyyy-MM-dd");
    NumberFormat formatoMoeda = NumberFormat.getCurrencyInstance();

    String tipo = "";

    EntregaFuturaBean eFutura;

    //lista com os valores na tabela utilizado para preencher um objeto EntregaFuturaBean e mandar para o banco mysql
    List<EntregaFuturaBean> pedidosEnviadosEF = new ArrayList<>();

    //Lista com os pedidos no banco de dados Mysql - pedidos enviados a entrega
    List<EntregaFuturaBean> pedidosEnviadosEFMysql = new ArrayList<>();

    //Lista de pedidos com produtos que tem entrega futura, vem do DBF
    List<EntregaFuturaBean> listaPedidosEF = new ArrayList<>();

    /**
     * Creates new form UIPedidosEntregaFutura
     *
     * @param parent
     * @param modal
     */
    public UIPedidosEntregaFutura(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        dataInicial.setDate(new Date());
        dataFinal.setDate(new Date());
        escClose(this);
        setLocationRelativeTo(null);
        UIManager.put("Table.alternateRowColor", new java.awt.Color(230, 255, 255));
        Utils.maximizarDialog(this);
    }

    /*
     atualizando dados referente a entrega
     */
    private void atualizaDadosEntrega(String nPed) {

        try {
            String texto = "";
            eFutura = EntregaFuturaDao.dadosEndereco(nPed);

            texto += "ENDEREÇO: " + eFutura.getPedido().getCliente().getEndereco() + ", " + eFutura.getPedido().getCliente().getnEndereco() + " - " + eFutura.getPedido().getCliente().getBairro()
                    + " - " + eFutura.getPedido().getCliente().getDescCidade() + "\n\n";

            if (eFutura.getPedido().getObs() != null) {
                texto += eFutura.getPedido().getObs();
            } else {
                texto += "SEM OBSERVAÇÕES.\n -----------\n";
            }

            try {
                eFutura = EntregaFuturaDao.dadosObservacao(nPed);
                texto += "PRODUTO: " + eFutura.getProduto().getDescricao() + " - OBS.: " + eFutura.getMotivo() + "\n";
            } catch (java.lang.NullPointerException e) {

            }

            txObsPedido.setText(texto);

        } catch (SQLException | IOException ex) {
            Mensagens.msgErro("erro ao atualizar dados da entrega\n" + ex.getMessage());
        }

    }

    /*
     verifica posição do jtabbedPane para habilitar/desabilitar componentes
     */
    private void posTabbedPane() {

        if (tabbedPane.getSelectedIndex() == 0) {
            btnBuscar.setEnabled(true);
        }
        if (tabbedPane.getSelectedIndex() == 1) {
            btnBuscar.setEnabled(false);
        }
        if (tabbedPane.getSelectedIndex() == 2) {
            btnBuscar.setEnabled(false);
        }
    }
    /*
     atualiza tabela com os pedidos para serem enviados ao mysql - pedido selecionado na tabela da esquerda
     */

    private void atualizaTabelaPedidosEF() {

        DefaultTableModel modelo = (DefaultTableModel) TabelaPedidosEF.getModel();
        modelo.setNumRows(0);

        for (EntregaFuturaBean pedidos : pedidosEnviadosEF) {
            modelo.addRow(new Object[]{
                pedidos.getPedido().getCliente().getCodigo(), pedidos.getPedido().getCliente().getNome(),
                pedidos.getPedido().getUsuario().getNome(), pedidos.getPedido().getPedido(), pedidos.getPedido().getData(), pedidos.getTipo()
            });
        }
        DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
        centralizado.setHorizontalAlignment(SwingConstants.CENTER);

        TabelaPedidosEF.getColumnModel().getColumn(0).setCellRenderer(centralizado);
        TabelaPedidosEF.getColumnModel().getColumn(2).setCellRenderer(centralizado);
        TabelaPedidosEF.getColumnModel().getColumn(4).setCellRenderer(centralizado);
    }

    /*
     preenche objeto com os valores da tabela para passar ao ireport e gerar a impressão
     */
    private void preencheObjeto() {

        int lSelect = tabelaEntregaFutura.getSelectedRow();

        EntregaFuturaBean iEntrega = new EntregaFuturaBean();
        PedidoBean pedido = new PedidoBean();

        pedido.setPedido(tabelaEntregaFutura.getValueAt(lSelect, 3).toString());
        pedido.setData(tabelaEntregaFutura.getValueAt(lSelect, 4).toString());

        ClienteBean cliente = new ClienteBean();
        cliente.setCodigo(tabelaEntregaFutura.getValueAt(lSelect, 0).toString());
        cliente.setNome(tabelaEntregaFutura.getValueAt(lSelect, 1).toString());
        //cliente.setCidade(tabelaEntregaFutura.getValueAt(lSelect, 2).toString());

        pedido.setCliente(cliente);

        UsuarioBean usuario = new UsuarioBean();
        usuario.setNome(tabelaEntregaFutura.getValueAt(lSelect, 2).toString());
        pedido.setUsuario(usuario);
        iEntrega.setTipo(tipo);
        iEntrega.setPedido(pedido);

        pedidosEnviadosEF.add(iEntrega);

    }

    /*
     remove produto selecionado na tabela da direita com pedidos a serem enviados a entrega futura
     */
    public void removerEntrega() {
        pedidosEnviadosEF.remove(TabelaPedidosEF.getSelectedRow());
        TabelaPedidosEF.requestFocus();
        TabelaPedidosEF.changeSelection(0, 1, false, false);
    }

    /*
     chama o metodo preenche objeto para adicionar o item selecionado na tabela em um list que sera enviado para o ireport
     */
    public void addEntrega() {

        String nPedido = tabelaEntregaFutura.getValueAt(tabelaEntregaFutura.getSelectedRow(), 3).toString();

        int sizeLista = pedidosEnviadosEF.size();

        //verificando se pedido ja foi adicionado a lista
        boolean verificar = true;

        //verificando se List é igual a 0, pois se for da erro no for
        if (sizeLista == 0) {
            UISelecionaTipoEntrega s = new UISelecionaTipoEntrega(this, true);
            s.setVisible(true);
            preencheObjeto();
        } else {
            for (int i = 0; i < sizeLista; i++) {
                if (pedidosEnviadosEF.get(i).getPedido().getPedido().equals(nPedido)) {
                    verificar = false;
                    Mensagens.msgErro("pedido ja adicionado!");
                }
            }
            if (verificar) {
                UISelecionaTipoEntrega s = new UISelecionaTipoEntrega(this, true);
                s.setVisible(true);
                preencheObjeto();
            }
        }

    }

    /*
     chama o arquivo do ireport passando uma lista com pedidos a gerar ficha de entrega futura
     */
    private void gerarPedidosEntregaFutura() {

        tabbedPane.setSelectedIndex(2);
        HashMap par = new HashMap();

        JRDataSource jasperSource = new JRBeanCollectionDataSource(pedidosEnviadosEF);

        jpVisualizarPedidos.removeAll();
        jpVisualizarPedidos.setLayout(new BorderLayout());
        InputStream dirReport = this.getClass().getClassLoader().getResourceAsStream("sys/report/entrega_futura.jasper");

        try {
            JasperPrint jasperPrint = JasperFillManager.fillReport(dirReport, par, jasperSource);

            JRViewer jasperViewer = new JRViewer(jasperPrint);
            jpVisualizarPedidos.add(jasperViewer);
            jpVisualizarPedidos.revalidate();
            jpVisualizarPedidos.repaint();

        } catch (JRException ex) {
            Mensagens.msgErro("erro ao gerar cobranca\n" + ex.getMessage());
        }

    }

    public String formatoMoeda(double valor) {
        return formatoMoeda.format(valor).replace("R$", "");
    }

    private void atualizaTabelaEntrega() {

        DefaultTableModel modelo = (DefaultTableModel) tabelaEntregaFutura.getModel();
        modelo.setNumRows(0);

        try {
            listaPedidosEF = EntregaFuturaDao.pedidosEntregaFutura(formDataSpac.format(dataInicial.getDate()), formDataSpac.format(dataFinal.getDate()));

            for (EntregaFuturaBean pedidos : listaPedidosEF) {

                if (cbTodos.isSelected()) {
                    modelo.addRow(new Object[]{
                        pedidos.getPedido().getCliente().getCodigo(), pedidos.getPedido().getCliente().getNome(),
                        pedidos.getPedido().getUsuario().getNome(), pedidos.getPedido().getPedido(), pedidos.getPedido().getData()
                    });
                } else {
                    if (EntregaFuturaDao.verificaSeExiste(pedidos.getPedido().getPedido())) {
                        modelo.addRow(new Object[]{
                            pedidos.getPedido().getCliente().getCodigo(), pedidos.getPedido().getCliente().getNome(),
                            pedidos.getPedido().getUsuario().getNome(), pedidos.getPedido().getPedido(), pedidos.getPedido().getData()
                        });
                    }
                }

            }
            DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
            centralizado.setHorizontalAlignment(SwingConstants.CENTER);
            tabelaEntregaFutura.getColumnModel().getColumn(0).setCellRenderer(centralizado);
            tabelaEntregaFutura.getColumnModel().getColumn(3).setCellRenderer(centralizado);
            tabelaEntregaFutura.getColumnModel().getColumn(4).setCellRenderer(centralizado);

        } catch (SQLException | IOException ex) {
            Mensagens.msgErro("erro\n" + ex.getMessage());
        }

    }

    /*
     verfica itens que foram para a expedição, mas não foram entregues
     */
    private void atualizaTabelaBaixadosEntrega() {

        DefaultTableModel modelo = (DefaultTableModel) tabelaEntregaFutura.getModel();
        modelo.setNumRows(0);

        try {
            listaPedidosEF = EntregaFuturaDao.pedidosEntregaFuturaMysql(formDataMysql.format(dataInicial.getDate()), formDataMysql.format(dataFinal.getDate()));

            if (tabelaEntregaFutura.getColumnCount() == 5) {
                modelo.addColumn("TIPO");
            }

            for (EntregaFuturaBean pedidos : listaPedidosEF) {
                if (cbPassadoEntrega.isSelected()) {
                    modelo.addRow(new Object[]{
                        pedidos.getPedido().getCliente().getCodigo(), pedidos.getPedido().getCliente().getNome(),
                        pedidos.getPedido().getUsuario().getNome(), pedidos.getPedido().getPedido(), pedidos.getPedido().getData(), pedidos.getTipo()
                    });
                } else {
                    if (EntregaFuturaDao.verificaItensPendentes(pedidos.getPedido().getPedido())) {
                        modelo.addRow(new Object[]{
                            pedidos.getPedido().getCliente().getCodigo(), pedidos.getPedido().getCliente().getNome(),
                            pedidos.getPedido().getUsuario().getNome(), pedidos.getPedido().getPedido(), pedidos.getPedido().getData(), pedidos.getTipo()
                        });
                    }
                }
            }

            DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
            centralizado.setHorizontalAlignment(SwingConstants.CENTER);

            if (tabelaEntregaFutura.getColumnModel().getColumnCount() > 0) {
                tabelaEntregaFutura.getColumnModel().getColumn(0).setPreferredWidth(60);
                tabelaEntregaFutura.getColumnModel().getColumn(1).setPreferredWidth(220);
                tabelaEntregaFutura.getColumnModel().getColumn(2).setPreferredWidth(80);
                tabelaEntregaFutura.getColumnModel().getColumn(4).setPreferredWidth(100);
            }

            tabelaEntregaFutura.getColumnModel().getColumn(0).setCellRenderer(centralizado);
            tabelaEntregaFutura.getColumnModel().getColumn(3).setCellRenderer(centralizado);
            tabelaEntregaFutura.getColumnModel().getColumn(4).setCellRenderer(centralizado);

        } catch (SQLException | IOException ex) {
            Mensagens.msgErro("erro\n" + ex.getMessage());
        }
    }

    /*
     atualiza tabela com pedidos do mysql, esses pedidos ja foram enviados a entrega
     */
    private void atualizaTabelaEntregaMysql() {
        DefaultTableModel modelo = (DefaultTableModel) tabelaEntregaFutura.getModel();
        modelo.setNumRows(0);

        try {
            listaPedidosEF = EntregaFuturaDao.pedidosEntregaFuturaMysql(formDataMysql.format(dataInicial.getDate()), formDataMysql.format(dataFinal.getDate()));
            for (EntregaFuturaBean pedidos : listaPedidosEF) {
                modelo.addRow(new Object[]{
                    pedidos.getPedido().getCliente().getCodigo(), pedidos.getPedido().getCliente().getNome(),
                    pedidos.getPedido().getUsuario().getNome(), pedidos.getPedido().getPedido(), pedidos.getPedido().getData()

                });
            }
            DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();
            
            centralizado.setHorizontalAlignment(SwingConstants.CENTER);
            
            tabelaEntregaFutura.getColumnModel().getColumn(0).setCellRenderer(centralizado);
            tabelaEntregaFutura.getColumnModel().getColumn(3).setCellRenderer(centralizado);
            tabelaEntregaFutura.getColumnModel().getColumn(4).setCellRenderer(centralizado);
            
        } catch (SQLException ex) {
            Mensagens.msgErro("erro\n" + ex.getMessage());
        }
    }

    /*
     verfica itens que estão na entrega futura de um pedido
     */
    private void atualizaTabelaItensPedido() {

        DefaultTableModel modelo = (DefaultTableModel) tabelaItensPedido.getModel();
        modelo.setNumRows(0);
        tabbedPane.setSelectedIndex(1);

        try {
            for (EntregaFuturaBean itens : EntregaFuturaDao.ItensPedido(tabelaEntregaFutura.getValueAt(tabelaEntregaFutura.getSelectedRow(), 3).toString())) {
                modelo.addRow(new Object[]{
                    itens.getPedido().getCliente().getCodigo() + "-" + itens.getPedido().getCliente().getNome(), itens.getPedido().getPedido(), itens.getPedido().getProduto().getDescricao(),
                    formatoMoeda(itens.getQtde()), formatoMoeda(itens.getQtdeEntregue()), formatoMoeda(itens.getQtde() - itens.getQtdeEntregue())

                });
            }

            DefaultTableCellRenderer centralizado = new DefaultTableCellRenderer();

            centralizado.setHorizontalAlignment(SwingConstants.CENTER);

            tabelaItensPedido.getColumnModel().getColumn(1).setCellRenderer(centralizado);
            tabelaItensPedido.getColumnModel().getColumn(3).setCellRenderer(centralizado);
            tabelaItensPedido.getColumnModel().getColumn(4).setCellRenderer(centralizado);
            tabelaItensPedido.getColumnModel().getColumn(5).setCellRenderer(centralizado);

        } catch (SQLException | IOException ex) {
            Mensagens.msgErro("erro ao atualizar tabela\n" + ex.getMessage());
        }

    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jpDados = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        dataInicial = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/#####", '_');
        jLabel3 = new javax.swing.JLabel();
        dataFinal = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/#####", '_');
        jPanel4 = new javax.swing.JPanel();
        btnBuscar = new javax.swing.JButton();
        btnSair = new javax.swing.JButton();
        tabbedPane = new javax.swing.JTabbedPane();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        tabelaEntregaFutura = new javax.swing.JTable();
        btnAdd = new javax.swing.JButton();
        btnRemove = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        TabelaPedidosEF = new javax.swing.JTable();
        btnImprimir = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        tabelaItensPedido = new javax.swing.JTable();
        jPanel5 = new javax.swing.JPanel();
        jpVisualizarPedidos = new javax.swing.JPanel();
        jpDados1 = new javax.swing.JPanel();
        cbTodos = new javax.swing.JCheckBox();
        cbPassadoEntrega = new javax.swing.JCheckBox();
        cbPendente = new javax.swing.JCheckBox();
        cbPassadosEntregaPendente = new javax.swing.JCheckBox();
        jPanel6 = new javax.swing.JPanel();
        jScrollPane4 = new javax.swing.JScrollPane();
        txObsPedido = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("CONSULTA PEDIDOS COM ENTREGA FUTURA");

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));

        jpDados.setBackground(new java.awt.Color(255, 255, 255));
        jpDados.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "SELECIONE DADOS:", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 0, 10))); // NOI18N

        jLabel2.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        jLabel2.setText("DATA INICIAL:");

        dataInicial.setFont(new java.awt.Font("Calibri", 0, 12)); // NOI18N

        jLabel3.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        jLabel3.setText("DATA FINAL:");

        dataFinal.setFont(new java.awt.Font("Calibri", 0, 12)); // NOI18N

        javax.swing.GroupLayout jpDadosLayout = new javax.swing.GroupLayout(jpDados);
        jpDados.setLayout(jpDadosLayout);
        jpDadosLayout.setHorizontalGroup(
            jpDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpDadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(dataInicial, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3)
                    .addComponent(dataFinal, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpDadosLayout.setVerticalGroup(
            jpDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpDadosLayout.createSequentialGroup()
                .addGap(7, 7, 7)
                .addComponent(jLabel2)
                .addGap(1, 1, 1)
                .addComponent(dataInicial, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel3)
                .addGap(1, 1, 1)
                .addComponent(dataFinal, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel4.setBackground(new java.awt.Color(255, 255, 255));
        jPanel4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(204, 204, 204)));

        btnBuscar.setFont(new java.awt.Font("Calibri", 0, 13)); // NOI18N
        btnBuscar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sys/picture/find-2.png"))); // NOI18N
        btnBuscar.setText("BUSCAR");
        btnBuscar.setPreferredSize(new java.awt.Dimension(120, 30));
        btnBuscar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBuscarActionPerformed(evt);
            }
        });
        jPanel4.add(btnBuscar);

        btnSair.setFont(new java.awt.Font("Calibri", 0, 13)); // NOI18N
        btnSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sys/picture/sair.png"))); // NOI18N
        btnSair.setText("SAIR");
        btnSair.setPreferredSize(new java.awt.Dimension(120, 30));
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });
        jPanel4.add(btnSair);

        tabbedPane.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        tabbedPane.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tabbedPaneMouseClicked(evt);
            }
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                tabbedPaneMouseReleased(evt);
            }
        });

        jPanel2.setBackground(new java.awt.Color(255, 255, 255));

        tabelaEntregaFutura.setAutoCreateRowSorter(true);
        tabelaEntregaFutura.setFont(new java.awt.Font("Calibri", 0, 10)); // NOI18N
        tabelaEntregaFutura.setForeground(new java.awt.Color(51, 51, 255));
        tabelaEntregaFutura.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "CODIGO", "CLIENTE", "VENDEDOR", "PEDIDO", "DATA"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tabelaEntregaFutura.setGridColor(new java.awt.Color(204, 204, 204));
        tabelaEntregaFutura.getTableHeader().setReorderingAllowed(false);
        tabelaEntregaFutura.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tabelaEntregaFuturaMouseClicked(evt);
            }
        });
        tabelaEntregaFutura.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                tabelaEntregaFuturaKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(tabelaEntregaFutura);
        if (tabelaEntregaFutura.getColumnModel().getColumnCount() > 0) {
            tabelaEntregaFutura.getColumnModel().getColumn(0).setPreferredWidth(60);
            tabelaEntregaFutura.getColumnModel().getColumn(1).setPreferredWidth(220);
            tabelaEntregaFutura.getColumnModel().getColumn(2).setPreferredWidth(80);
            tabelaEntregaFutura.getColumnModel().getColumn(4).setPreferredWidth(100);
        }

        btnAdd.setFont(new java.awt.Font("Calibri", 1, 14)); // NOI18N
        btnAdd.setText("+");
        btnAdd.setPreferredSize(new java.awt.Dimension(120, 30));
        btnAdd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAddActionPerformed(evt);
            }
        });

        btnRemove.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        btnRemove.setText("-");
        btnRemove.setPreferredSize(new java.awt.Dimension(120, 30));
        btnRemove.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnRemoveActionPerformed(evt);
            }
        });

        TabelaPedidosEF.setFont(new java.awt.Font("Calibri", 0, 10)); // NOI18N
        TabelaPedidosEF.setForeground(new java.awt.Color(51, 51, 255));
        TabelaPedidosEF.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "CODIGO", "CLIENTE", "VENDEDOR", "PEDIDO", "DATA", "TIPO"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        TabelaPedidosEF.setGridColor(new java.awt.Color(204, 204, 204));
        TabelaPedidosEF.getTableHeader().setReorderingAllowed(false);
        jScrollPane3.setViewportView(TabelaPedidosEF);
        if (TabelaPedidosEF.getColumnModel().getColumnCount() > 0) {
            TabelaPedidosEF.getColumnModel().getColumn(1).setPreferredWidth(250);
            TabelaPedidosEF.getColumnModel().getColumn(2).setPreferredWidth(100);
        }

        btnImprimir.setFont(new java.awt.Font("Calibri", 1, 12)); // NOI18N
        btnImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sys/picture/print.png"))); // NOI18N
        btnImprimir.setPreferredSize(new java.awt.Dimension(120, 30));
        btnImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnImprimirActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 511, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(btnAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(btnRemove, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(btnImprimir, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 410, Short.MAX_VALUE)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(btnAdd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btnRemove, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btnImprimir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 308, Short.MAX_VALUE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 410, Short.MAX_VALUE))
                .addContainerGap())
        );

        tabbedPane.addTab("PEDIDOS", jPanel2);

        jPanel3.setBackground(new java.awt.Color(255, 255, 255));

        tabelaItensPedido.setFont(new java.awt.Font("Calibri", 0, 12)); // NOI18N
        tabelaItensPedido.setForeground(new java.awt.Color(51, 51, 255));
        tabelaItensPedido.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "CLIENTE", "PEDIDO", "PRODUTO", "QTD. COMPRA", "QTD. ENTREGUE", "SALDO"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tabelaItensPedido.setGridColor(new java.awt.Color(204, 204, 204));
        tabelaItensPedido.getTableHeader().setReorderingAllowed(false);
        jScrollPane2.setViewportView(tabelaItensPedido);
        if (tabelaItensPedido.getColumnModel().getColumnCount() > 0) {
            tabelaItensPedido.getColumnModel().getColumn(0).setPreferredWidth(200);
            tabelaItensPedido.getColumnModel().getColumn(2).setPreferredWidth(230);
        }

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 1083, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 410, Short.MAX_VALUE)
                .addContainerGap())
        );

        tabbedPane.addTab("ITENS DO PEDIDO", jPanel3);

        jpVisualizarPedidos.setBackground(new java.awt.Color(255, 255, 255));

        javax.swing.GroupLayout jpVisualizarPedidosLayout = new javax.swing.GroupLayout(jpVisualizarPedidos);
        jpVisualizarPedidos.setLayout(jpVisualizarPedidosLayout);
        jpVisualizarPedidosLayout.setHorizontalGroup(
            jpVisualizarPedidosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1103, Short.MAX_VALUE)
        );
        jpVisualizarPedidosLayout.setVerticalGroup(
            jpVisualizarPedidosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 432, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jpVisualizarPedidos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jpVisualizarPedidos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        tabbedPane.addTab("VISUALIZAR PEDIDOS", jPanel5);

        jpDados1.setBackground(new java.awt.Color(255, 255, 255));
        jpDados1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "SELECIONE DADOS:", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 0, 10))); // NOI18N

        cbTodos.setBackground(new java.awt.Color(255, 255, 255));
        cbTodos.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        cbTodos.setText("TODOS OS PEDIDOS DO PERÍODO");
        cbTodos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbTodosActionPerformed(evt);
            }
        });

        cbPassadoEntrega.setBackground(new java.awt.Color(255, 255, 255));
        cbPassadoEntrega.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        cbPassadoEntrega.setText("PASSADOS A ENTREGA");
        cbPassadoEntrega.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbPassadoEntregaActionPerformed(evt);
            }
        });

        cbPendente.setBackground(new java.awt.Color(255, 255, 255));
        cbPendente.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        cbPendente.setSelected(true);
        cbPendente.setText("A ENVIAR P/ ENTREGA");
        cbPendente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbPendenteActionPerformed(evt);
            }
        });

        cbPassadosEntregaPendente.setBackground(new java.awt.Color(255, 255, 255));
        cbPassadosEntregaPendente.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        cbPassadosEntregaPendente.setText("PASSADOS A ENTREGA - PENDENTES");
        cbPassadosEntregaPendente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbPassadosEntregaPendenteActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jpDados1Layout = new javax.swing.GroupLayout(jpDados1);
        jpDados1.setLayout(jpDados1Layout);
        jpDados1Layout.setHorizontalGroup(
            jpDados1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpDados1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jpDados1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(cbPendente)
                    .addComponent(cbPassadoEntrega))
                .addGap(229, 229, 229))
            .addGroup(jpDados1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpDados1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(cbPassadosEntregaPendente)
                    .addComponent(cbTodos))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpDados1Layout.setVerticalGroup(
            jpDados1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpDados1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(cbPendente)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(cbPassadoEntrega)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(cbTodos)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(cbPassadosEntregaPendente)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel6.setBackground(new java.awt.Color(255, 255, 255));
        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "DADOS SOBRE A ENTREGA:", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 0, 10))); // NOI18N

        txObsPedido.setColumns(20);
        txObsPedido.setFont(new java.awt.Font("Calibri", 0, 13)); // NOI18N
        txObsPedido.setForeground(new java.awt.Color(204, 0, 255));
        txObsPedido.setLineWrap(true);
        txObsPedido.setRows(5);
        jScrollPane4.setViewportView(txObsPedido);

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 655, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(tabbedPane, javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jpDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jpDados1, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jpDados, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpDados1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(tabbedPane)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBuscarActionPerformed

        if (!cbPassadoEntrega.isSelected() && !cbPendente.isSelected() && !cbTodos.isSelected() && !cbPassadosEntregaPendente.isSelected()) {
            Mensagens.msgAtencao("selecione pelo menos uma opção!");
        } else {
            final BarraProgresso pb = new BarraProgresso(this);
            SwingWorker worker = new SwingWorker() {

                @Override
                protected Object doInBackground() throws Exception {
                    pb.gerarJanela();
                    pb.lbDescricao.setText("BUSCANDO, POR FAVOR AGUARDE...");

                    if (cbPendente.isSelected()) {
                        atualizaTabelaEntrega();
                    }
                    if (cbTodos.isSelected()) {
                        atualizaTabelaEntrega();
                    }
                    if (cbPassadoEntrega.isSelected()) {
                        atualizaTabelaEntregaMysql();
                    }

                    if (cbPassadosEntregaPendente.isSelected()) {
                        atualizaTabelaBaixadosEntrega();
                    }
                    return null;

                }

                @Override
                protected void done() {
                    pb.fechar();
                }
            };
            worker.execute();
        }

    }//GEN-LAST:event_btnBuscarActionPerformed

    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSairActionPerformed
        this.dispose();
    }//GEN-LAST:event_btnSairActionPerformed

    private void tabelaEntregaFuturaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabelaEntregaFuturaMouseClicked

        final BarraProgresso pb = new BarraProgresso(this);
        SwingWorker worker = new SwingWorker() {

            @Override
            protected Object doInBackground() throws Exception {
                pb.gerarJanela();
                pb.lbDescricao.setText("CARREGANDO, POR FAVOR AGUARDE...");
                atualizaDadosEntrega(tabelaEntregaFutura.getValueAt(tabelaEntregaFutura.getSelectedRow(), 3).toString());
                return null;
            }

            @Override
            protected void done() {
                pb.fechar();
            }
        };
        worker.execute();

        if (evt.getClickCount() == 2) {

            final BarraProgresso pb1 = new BarraProgresso(this);
            SwingWorker worker1 = new SwingWorker() {

                @Override
                protected Object doInBackground() throws Exception {
                    pb1.gerarJanela();
                    pb1.lbDescricao.setText("CARREGANDO, POR FAVOR AGUARDE...");
                    atualizaTabelaItensPedido();
                    return null;
                }

                @Override
                protected void done() {
                    pb1.fechar();
                }
            };
            worker1.execute();
        }
    }//GEN-LAST:event_tabelaEntregaFuturaMouseClicked

    private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddActionPerformed
        addEntrega();
        atualizaTabelaPedidosEF();
    }//GEN-LAST:event_btnAddActionPerformed

    private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImprimirActionPerformed

        if (pedidosEnviadosEF.size() < 1) {
            Mensagens.msgAtencao("selecione pelo menos 1 pedido para gerar ficha de entrega!");
        } else {

            String incluir = null;
            try {
                incluir = EntregaFuturaDao.incluir(pedidosEnviadosEF);
            } catch (SQLException ex) {
                Logger.getLogger(UIPedidosEntregaFutura.class.getName()).log(Level.SEVERE, null, ex);
            }

            if (!incluir.equals("")) {
                Mensagens.msgErro("os pedidos abaixo serão adicionado apenas a ficha\n" + incluir);
            }

            gerarPedidosEntregaFutura();

            atualizaTabelaEntrega();
//            final BarraProgresso pb = new BarraProgresso(this, true);
//            SwingWorker worker = new SwingWorker() {
//
//                @Override
//                protected Object doInBackground() throws Exception {
//                    pb.gerarJanela();
//                    pb.lbDescricao.setText("GERANDO, POR FAVOR AGUARDE...");
//
//                    String incluir = EntregaFuturaDao.incluir(pedidosEnviadosEF);
//
//                    if (!incluir.equals("")) {
//                        Mensagens.msgErro("os pedidos abaixo serão adicionado apenas a ficha\n" + incluir);
//                    }
//
//                    gerarPedidosEntregaFutura();
//
//                    atualizaTabelaEntrega();
//
//                    return null;
//                }
//
//                @Override
//                protected void done() {
//                    pb.fechar();
//                    pedidosEnviadosEF.clear();
//                    atualizaTabelaPedidosEF();
//                }
//            };
//            worker.execute();
            posTabbedPane();
        }


    }//GEN-LAST:event_btnImprimirActionPerformed

    private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveActionPerformed
        if (TabelaPedidosEF.getSelectedRow() < 0) {
            Mensagens.msgAtencao("selecione pelo menos 1 registro");
        } else {
            removerEntrega();
            atualizaTabelaPedidosEF();
        }
    }//GEN-LAST:event_btnRemoveActionPerformed

    private void cbTodosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbTodosActionPerformed
        cbPendente.setSelected(false);
        cbPassadoEntrega.setSelected(false);
        cbPassadosEntregaPendente.setSelected(false);

        btnAdd.setEnabled(false);
        btnRemove.setEnabled(false);
        btnImprimir.setEnabled(false);
    }//GEN-LAST:event_cbTodosActionPerformed

    private void cbPassadoEntregaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbPassadoEntregaActionPerformed
        cbPendente.setSelected(false);
        cbTodos.setSelected(false);
        cbPassadosEntregaPendente.setSelected(false);

        btnAdd.setEnabled(true);
        btnRemove.setEnabled(true);
        btnImprimir.setEnabled(true);

    }//GEN-LAST:event_cbPassadoEntregaActionPerformed

    private void cbPendenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbPendenteActionPerformed
        cbPassadoEntrega.setSelected(false);
        cbTodos.setSelected(false);
        cbPassadosEntregaPendente.setSelected(false);

        btnAdd.setEnabled(true);
        btnRemove.setEnabled(true);
        btnImprimir.setEnabled(true);

    }//GEN-LAST:event_cbPendenteActionPerformed

    private void tabbedPaneMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabbedPaneMouseClicked
        posTabbedPane();
    }//GEN-LAST:event_tabbedPaneMouseClicked

    private void cbPassadosEntregaPendenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbPassadosEntregaPendenteActionPerformed
        cbPendente.setSelected(false);
        cbPassadoEntrega.setSelected(false);
        cbTodos.setSelected(false);

        btnAdd.setEnabled(false);
        btnRemove.setEnabled(false);
        btnImprimir.setEnabled(false);
    }//GEN-LAST:event_cbPassadosEntregaPendenteActionPerformed

    private void tabelaEntregaFuturaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tabelaEntregaFuturaKeyReleased
        final BarraProgresso pb = new BarraProgresso(this);
        SwingWorker worker = new SwingWorker() {

            @Override
            protected Object doInBackground() throws Exception {
                pb.gerarJanela();
                pb.lbDescricao.setText("CARREGANDO, POR FAVOR AGUARDE...");
                atualizaDadosEntrega(tabelaEntregaFutura.getValueAt(tabelaEntregaFutura.getSelectedRow(), 3).toString());
                return null;
            }

            @Override
            protected void done() {
                pb.fechar();
            }
        };
        worker.execute();
    }//GEN-LAST:event_tabelaEntregaFuturaKeyReleased

    private void tabbedPaneMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabbedPaneMouseReleased
        posTabbedPane();
    }//GEN-LAST:event_tabbedPaneMouseReleased


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTable TabelaPedidosEF;
    private javax.swing.JButton btnAdd;
    private javax.swing.JButton btnBuscar;
    private javax.swing.JButton btnImprimir;
    private javax.swing.JButton btnRemove;
    private javax.swing.JButton btnSair;
    private javax.swing.JCheckBox cbPassadoEntrega;
    private javax.swing.JCheckBox cbPassadosEntregaPendente;
    private javax.swing.JCheckBox cbPendente;
    private javax.swing.JCheckBox cbTodos;
    private com.toedter.calendar.JDateChooser dataFinal;
    private com.toedter.calendar.JDateChooser dataInicial;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JPanel jpDados;
    private javax.swing.JPanel jpDados1;
    private javax.swing.JPanel jpVisualizarPedidos;
    private javax.swing.JTabbedPane tabbedPane;
    private javax.swing.JTable tabelaEntregaFutura;
    private javax.swing.JTable tabelaItensPedido;
    private javax.swing.JTextArea txObsPedido;
    // End of variables declaration//GEN-END:variables
}
